--- 战斗单位
---
--- @class AbstractFighter
AbstractFighter = ClientFight.CreateClass("AbstractFighter")
local AbstractFighter = AbstractFighter

--- @public
--- @return AbstractFighter
function AbstractFighter:ctor()
    --- @type number
    self.fighterId = 0;
    -- 计算属性 */
    ---@type table<number, SBaseAttribute>
    self.attributeCalculators = {};
    -- 总属性 */
    ---@type SBaseAttribute
    self.totalAttribute = ClientFight.BaseAttribute.New();
    -- 计算状态 */
    ---@type table<number,BaseState>
    self.stateCalculators = {};
    -- 总状态 */
    ---@type BaseState
    self.totalState = BaseState.New();
    -- 计算状态 */
    ---@type table<number, BaseSign>
    self.signCalculators = {};
    -- 总状态 */
    ---@type BaseSign
    self.totalSign = BaseSign.New();

    --[[ 其他属性
    * key: {@link CalculatorTypeEnum}
    * */]]
    ---@type table<number, SBaseAttribute>

    self.attributes = {};
end
